import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

# 图像滤波

# 2D卷积（图像过滤）
# 与一维信号一样，图像也可以使用各种低通滤波器（LPF），高通滤波器（HPF）等进行滤波。LPF有助于消除噪声，模糊图像等。HPF滤波器有助于找到图片的边缘。

img = cv.imread("img/cat.jpg", 1)
img = cv.resize(img, (300, 300))

# 5x5平均滤波器的核,将此核放在一个像素A上，求与核对应的图像上 25（5x5）个像素的和，取其平均值并用新的平均值替换像素A的值。重复以上操作直到将图像的每一个像素值都更新一遍。
kernel = np.ones((5, 5), np.float32) / 25
dis = cv.filter2D(img, -1, kernel)

plt.subplot(121), plt.imshow(img), plt.title("img")
plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(dis), plt.title("dis")
plt.xticks([]), plt.yticks([])
plt.show()


